 
package com.xbongbong.pro.domain.entity;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.enums.EnableEnum;
import com.xbongbong.paas.toolbox.util.DateTimeUtil;
import com.xbongbong.paas.toolbox.util.StringUtil;
import com.xbongbong.pro.constant.I18nStringConstant;
import com.xbongbong.pro.enums.global.ChartCategoryEnum;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.context.i18n.LocaleContextHolder;

import java.util.Locale;
import java.util.Objects;

/**
* @author autoGen
* @time 2019-01-07 11:13:40
*/
@Getter
@Setter
@ToString
public class ChartCategoryEntity {

	private static final long serialVersionUID = 6110069730002718691L;

	public ChartCategoryEntity (){
		del = 0;
	}
	public ChartCategoryEntity (String corpid, Integer type, ChartCategoryEnum chartCategoryEnum, String nameEn, Integer sort){
		this.corpid = corpid;
		this.type = type;
		parentId = 0L;
		this.alias = chartCategoryEnum.getAlias();
		this.name = chartCategoryEnum.getName();
		this.nameEn = nameEn;
		this.enable = EnableEnum.OPEN.getCode();
		this.sort = sort;
		addTime = DateTimeUtil.getInt();
		updateTime = DateTimeUtil.getInt();
		del = 0;
		publish = 0;
	}
	//========== properties ==========

	/**
	 * 主键id
	 */
	private Long id;
	/**
	 * 公司id
	 */
	private String corpid;
	/**
	 * 1app首页特殊类，2首页右侧动态看板分类，3首页左侧分类，
	 * 4图表中心系统分类，5图表中心新建的分类，6员工PK，61部门pk，7目标完成情况，8呼叫中心
	 */
	private Integer type;
	/**
	 * 父分类ID，顶级分类父分类为0
	 */
	private Long parentId;
	/**
	 * 分类英文名，只有首页模块会用该值
	 */
	private String alias;
	/**
	 * 分类名称
	 */
	private String name;
	/**
	 * 分类英文名称
	 */
	private String nameEn;
	/**
	 * 1开启，0未开启；默认1，如果关闭分组则关闭下面所有图表
	 */
	private Integer enable;
	/**
	 * 分类排序值，从大到小
	 */
	private Integer sort;
	/**
	 * 整个分组的查询条件
	 */
	private JSONArray search;
	/**
	 * 创建者id
	 */
	private String creatorId;
	/**
	 * 创建时间
	 */
	private Long addTime;
	/**
	 * 更新时间
	 */
	private Long updateTime;
	/**
	 * 删除标记
	 */
	private Integer del;
	/**
	 * 镜像策略id
	 */
	private  Long sourceCategoryId;
	/**
	 * 全局样式
	 */
	private JSONObject globalStyleOption;

	public String getName() {
		Locale locale = LocaleContextHolder.getLocale();
		if (Objects.equals(locale.getLanguage(), I18nStringConstant.ENGLISH_LANGUAGE)&& StringUtil.isNotEmpty(nameEn)) {
			return nameEn;
		}
		return name;
	}

	public String getNameEn() {
		Locale locale = LocaleContextHolder.getLocale();
		if (Objects.equals(locale.getLanguage(), I18nStringConstant.ENGLISH_LANGUAGE)) {
			return name;
		}
		return nameEn;
	}

	/**
	 * 权限信息
	 */
	private JSONObject permissions;

	/**
	 * 发布标志 0-未发布 1-发布
	 */
	private Integer publish;
}

